package br.com.sgpv2.entity.cargos;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

 /**
 * Representa uma entidade Cargo no sistema.
 */

@Entity
@Table(name = "crg_cargo")
@SequenceGenerator(name = "sequenceCargo", sequenceName = "crg_cargo_crg_id_seq")
public class Cargo {

	private int id;
	private String sigla;
	private TipoCargoEnum tipo;
	private GrupoCargoEnum grupo;
	private CargoCBO codigoCbo;
	private String dataCriacao;
	private String lei;
	private String dataDesativacao;
	private Double cargaHoraria;

/**
 * Recupera o valor do ID da entidade.
 */
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "crg_id", nullable = false)
	public int getId() {
		return id;
	}

 /**
 * Configura o valor do ID da entidade.
 */

	public void setId(int id) {
		this.id = id;
	}

 /**
 * Recupera o valor do campo SIGLA.
 */

	@Column(name = "crg_sigla")
	public String getSigla() {
		return sigla;
	}

 /**
 * Configura o valor do campo SIGLA.
 */

	public void setSigla(String sigla) {
		this.sigla = sigla;
	}

 /**
 * Recupera o tipo do cargo.
 */

	@Column(name = "crg_tipo")
	@Enumerated(EnumType.STRING)
	public TipoCargoEnum getTipo() {
		return tipo;
	}

 /**
 * Configura o tipo do cargo.
 */

	public void TipoCargoEnum(TipoCargoEnum tipo) {
		this.tipo = tipo;
	}

 /**
 * Recupera o grupo do cargo.
 */

	@Column(name = "crg_grupo")
	@Enumerated(EnumType.STRING)
	public GrupoCargoEnum getGrupo() {
		return grupo;
	}

 /**
 * Configura o grupo do cargo.
 */

	public void setGrupo(GrupoCargoEnum grupo) {
		this.grupo = grupo;
	}

 /**
 * Recupera o cargo CBO.
 */

	@OneToOne
	@JoinColumn(name = "cbo_id")
	public CargoCBO getCodigoCbo() {
		return codigoCbo;
	}

 /**
 * Configura o cargo CBO.
 */

	public void setCodigoCbo(CargoCBO codigoCbo) {
		this.codigoCbo = codigoCbo;
	}

 /**
 * Recupera a data de criação.
 */

	@Column(name = "crg_data_criacao")
	public String getDataCriacao() {
		return dataCriacao;
	}

 /**
 * Configura a data de criação.
 */

	public void setDataCriacao(String dataCriacao) {
		this.dataCriacao = dataCriacao;
	}

 /**
 * Recupera a LEI.
 */

	@Column(name = "crg_lei")
	public String getLei() {
		return lei;
	}

 /**
 * Configura a LEI.
 */

	public void setLei(String lei) {
		this.lei = lei;
	}

 /**
 * Recupera a data de desativação.
 */

	@Column(name = "crg_data_desativacao")
	public String getDataDesativacao() {
		return dataDesativacao;
	}

 /**
 * Configura a data de desativação.
 */

	public void setDataDesativacao(String dataDesativacao) {
		this.dataDesativacao = dataDesativacao;
	}

 /**
 * Recupera a carga hor�ria.
 */

	@Column(name = "crg_carga_horaria")
	public Double getCargaHoraria() {
		return cargaHoraria;
	}

 /**
 * Configura a carga hor�ria.
 */
	public void setCargaHoraria(Double cargaHoraria) {
		this.cargaHoraria = cargaHoraria;
	}

}
 